<?xml version="1.0" encoding="UTF-8"?>

<xsl:transform 	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
		xmlns:str="http://xsltsl.org/string" 
		xmlns:ident="x-schema:DTMIdentSchema.xml"
		xmlns:fdt="x-schema:FDTDataTypesSchema.xml"
		xmlns:scanident="x-schema:DTMScanIdentSchema.xml"
 		xmlns:cipident="x-schema:FDTCIPIdentSchema.xml"
 		xmlns:cipscanident="x-schema:FDTCIPScanIdentSchema.xml"	
		xmlns:cipdeviceident="x-schema:FDTCIPDeviceTypeIdentSchema.xml"
 		xmlns:cip="x-schema:DTMCIPDataTypeSchema.xml"		
		xmlns:cipscan="x-schema:DTMTopologyScanSchema.xml"		
		version="2.0">
	<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
	<xsl:variable name="FileVersion">
		<xsl:number value="1.21"/>
	</xsl:variable>
	<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
	<xsl:template match="/">
		<xsl:apply-templates select="//FDT/cipscanident:ScanIdentifications"/>
		<xsl:apply-templates select="//FDT/cipdeviceident:DeviceIdentifications"/>
	</xsl:template>

	<xsl:template match="cipscanident:ScanIdentifications">
		<xsl:text disable-output-escaping="yes">&lt;?xml version="1.0"?&gt;
		&lt;!-- This file is created by FDTCIPIdentTransformation.xsl after transformation of CIPDTMScanIdentificationInstance.xml --&gt;&lt;FDT xmlns="x-schema:DTMScanIdentSchema.xml" 
		 xmlns:ident="x-schema:DTMIdentSchema.xml" xmlns:fdt="x-schema:FDTDataTypesSchema.xml" &gt;
		 </xsl:text>
		<xsl:element name="ScanIdentifications">
			<xsl:attribute name="fdt:busCategory">
				<xsl:value-of select="@fdt:busCategory"/>
			</xsl:attribute>
			<xsl:attribute name="resultState">
				<xsl:value-of select="@resultState"/>
			</xsl:attribute>
			<xsl:apply-templates select="cipscanident:ScanIdentification"/>
		</xsl:element>
		<xsl:text disable-output-escaping="yes">&lt;/FDT&gt;</xsl:text>
	</xsl:template>

	<!--CIP scan ident-->
	<xsl:template match="cipscanident:ScanIdentification">
      <xsl:element name="ScanIdentification">
		  <xsl:element name="IdBusProtocol">
		     <xsl:attribute name="ident:value"><xsl:value-of select="cipscanident:IdBusProtocol/@cipident:busProtocol"/></xsl:attribute>
		     <xsl:attribute name="ident:protocolSpecificName">CIP</xsl:attribute>
		  </xsl:element>
		  <xsl:element name="IdBusProtocolVersion">
		     <xsl:attribute name="ident:value">1</xsl:attribute>
		     <xsl:attribute name="ident:protocolSpecificName">CIP Revision</xsl:attribute>
		  </xsl:element>
  		  <xsl:apply-templates select="cip:CIPDevice/cip:CIPPath" />
		  <xsl:apply-templates select="cip:CIPDevice/cip:CIPDeviceIdentity"/>
	  </xsl:element>
	</xsl:template>

	<xsl:template match="cipdeviceident:DeviceIdentifications">
		<xsl:text disable-output-escaping="yes">&lt;?xml version="1.0"?&gt;
		&lt;!-- This file is created by FDTCIPIdentTransformation.xsl after transformation of CIPDTMDeviceIdentificationInstance.xml --&gt;&lt;FDT xmlns="x-schema:DTMDeviceTypeIdentSchema.xml" 
	 	xmlns:ident="x-schema:DTMIdentSchema.xml" xmlns:fdt="x-schema:FDTDataTypesSchema.xml" &gt;
	 	</xsl:text>
		<xsl:element name="DeviceIdentifications">
			<xsl:apply-templates select="cipdeviceident:DeviceIdentification"/>
		</xsl:element>
		<xsl:text disable-output-escaping="yes">&lt;/FDT&gt;</xsl:text>
	</xsl:template>

	<xsl:template match="cipdeviceident:DeviceIdentification">
		<xsl:element name="DeviceIdentification">
 			<xsl:attribute name="ident:idDTMSupportLevel">
				<xsl:value-of select="@cipident:idDTMSupportLevel"/>
		  	</xsl:attribute>
			<xsl:element name="IdBusProtocol">
		    	<xsl:attribute name="ident:value"><xsl:value-of select="cipdeviceident:IdBusProtocol/@cipident:busProtocol"/></xsl:attribute>
		    	<xsl:attribute name="ident:protocolSpecificName">CIP</xsl:attribute>
			</xsl:element>
			<xsl:element name="IdBusProtocolVersion">
		    	<xsl:attribute name="ident:value">1</xsl:attribute>
				<xsl:attribute name="ident:protocolSpecificName">CIP Revision</xsl:attribute>
			</xsl:element>
			<xsl:apply-templates select="cip:CIPDeviceIdentity"/>
		</xsl:element>
	</xsl:template>

	<!--CIP device data-->
	<xsl:template match="cipscanident:ScanIdentification/cip:CIPDevice/cip:CIPDeviceIdentity">
	    <xsl:element name="IdManufacturer">
	      <xsl:attribute name="ident:value"><xsl:value-of select="@vendorID"/></xsl:attribute>
          <xsl:attribute name="ident:protocolSpecificName">DeviceNet Revision</xsl:attribute>
	    </xsl:element>
	    <xsl:element name="IdTypeID">
	      <xsl:attribute name="ident:value"><xsl:value-of select="@deviceType"/>-<xsl:value-of select="@productCode"/></xsl:attribute>
  	      <xsl:attribute name="ident:protocolSpecificName">DeviceType-ProductCode</xsl:attribute>
	    </xsl:element>
	    <xsl:element name="IdSoftwareRevision">
	      <xsl:attribute name="ident:value"><xsl:value-of select="@majorRevision"/>.<xsl:value-of select="@minorRevision"/></xsl:attribute>
          <xsl:attribute name="ident:protocolSpecificName">MajorRevision.MinorRevision</xsl:attribute>
	    </xsl:element>
	    <xsl:element name="IdHardwareRevision">
	      <xsl:attribute name="ident:value"><xsl:value-of select="@majorRevision"/>.<xsl:value-of select="@minorRevision"/></xsl:attribute>
  	      <xsl:attribute name="ident:protocolSpecificName">MajorRevision.MinorRevision</xsl:attribute>
	    </xsl:element>
	    <xsl:element name="IdDeviceTag">
	      <xsl:attribute name="ident:value"><xsl:value-of select="@productName"/></xsl:attribute>
   	      <xsl:attribute name="ident:protocolSpecificName">Product Name</xsl:attribute>
	    </xsl:element>
	    <xsl:element name="IdSerialNumber">
	      <xsl:attribute name="ident:value"><xsl:value-of select="@serialNumber"/></xsl:attribute>
   	      <xsl:attribute name="ident:protocolSpecificName">SerialNumber</xsl:attribute>
	    </xsl:element>
	</xsl:template>

	<xsl:template match="cipdeviceident:DeviceIdentification/cip:CIPDeviceIdentity">
	    <xsl:element name="IdManufacturer">
	      <xsl:attribute name="ident:value"><xsl:value-of select="@vendorID"/></xsl:attribute>
          <xsl:attribute name="ident:protocolSpecificName">DeviceNet Revision</xsl:attribute>
	    </xsl:element>
	    <xsl:element name="IdTypeID">
	      <xsl:attribute name="ident:value"><xsl:value-of select="@deviceType"/>-<xsl:value-of select="@productCode"/></xsl:attribute>
  	      <xsl:attribute name="ident:protocolSpecificName">DeviceType-ProductCode</xsl:attribute>
	    </xsl:element>
	    <xsl:element name="IdSoftwareRevision">
	      <xsl:attribute name="ident:value"><xsl:value-of select="@majorRevision"/>.<xsl:value-of select="@minorRevision"/></xsl:attribute>
          <xsl:attribute name="ident:protocolSpecificName">MajorRevision.MinorRevision</xsl:attribute>
	    </xsl:element>
	    <xsl:element name="IdHardwareRevision">
	      <xsl:attribute name="ident:value"><xsl:value-of select="@majorRevision"/>.<xsl:value-of select="@minorRevision"/></xsl:attribute>
  	      <xsl:attribute name="ident:protocolSpecificName">MajorRevision.MinorRevision</xsl:attribute>
	    </xsl:element>
	</xsl:template>

	<!--CIP device address-->
	<xsl:template match="cip:CIPPath">
	  <xsl:element name="IdAddress">
	     <xsl:attribute name="ident:value"><xsl:value-of select="cip:CIPNodeID/cip:ShortIdentifier/@shortIdentifier"></xsl:value-of></xsl:attribute>
	     <xsl:attribute name="ident:protocolSpecificName"><xsl:value-of select="cip:ExtendedIdentifier/@extendedIdentifier"></xsl:value-of></xsl:attribute>
	  </xsl:element>
	</xsl:template>
</xsl:transform>
